今天的學習目標是理解智慧合約在醫療領域的應用,特別是病人如何透過「同意」或「拒絕」來決定醫療紀錄是否能被共享,並能用 Python 撰寫簡單的同意/撤回模擬程式,體會智慧合約的自動化規則如何保障病人隱私。
一、理論重點
二、案例分享
2021 年,台灣多家醫院參與的醫療資訊交換平台嘗試導入「病人同意管理」機制,病人可以透過健保卡或數位同意書,決定是否允許其他醫療院所調閱病歷。這就像智慧合約的概念,病人一旦拒絕同意,醫師端即便有技術能力也無法存取,避免了病歷在未經授權情況下被濫用。
三、簡單程式示範
class ConsentContract:
def __init__(self):
self.consent = {}
def give_consent(self, patient_id):
self.consent[patient_id] = True
print(f" 病人 {patient_id} 同意分享紀錄")
def revoke_consent(self, patient_id):
self.consent[patient_id] = False
print(f" 病人 {patient_id} 撤回同意")
def check_access(self, patient_id, requester):
if self.consent.get(patient_id, False):
print(f" {requester} 可以存取 {patient_id} 的紀錄")
else:
print(f" {requester} 不可存取 {patient_id} 的紀錄")
# ---- 測試流程 ----
contract = ConsentContract()
contract.give_consent("PatientA")
contract.check_access("PatientA", "Hospital")
contract.revoke_consent("PatientA")
contract.check_access("PatientA", "ResearchLab")
這段程式碼模擬了一個「病人同意分享紀錄」的智慧合約概念。ConsentContract 類別用一個字典 self.consent 來記錄每個病人是否同意分享病歷,give_consent 代表病人同意,revoke_consent 代表撤回同意,check_access 則根據病人狀態判斷某個請求人(例如醫院或研究單位)是否能存取病歷。測試流程中,PatientA 先同意,醫院可以查看紀錄;後來撤回同意,研究單位就無法存取,完整體現了病人自主決定權。執行結果如下